public class Test1 {
    private static int count = 0;
    // 存在线程安全问题
    public static void main(String[] args) throws InterruptedException {
        // 创建两个线程，分别对同一个变量进行 5w 次的 ++ 操作.
        // 最终主线程打印结果.
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 50000; i++) {
                count++;
            }
        });

        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 50000; i++) {
                count++;
            }
        });

        t1.start();
        t2.start();

        // 这俩join谁先谁后，无所谓
        // t1先结束，t2后结束 即time1 < time2 => 等待时间为time2
        t1.join();
        t2.join();
        // t2先结束，t1后结束。
        // 过了time1时间，t2.join还在等，直到到了time2时间，t2.join返回
        // 此时由于t1已经结束了，总的时间还是time2
       /* t2.join();
        t1.join();*/

        System.out.println("count = " + count);
    }

}
